home
***
CD-ROM
|
disk
|
FTP
|
other
***
search
/
HPAVC
/
HPAVC CD-ROM.iso
/
MYMUD21.ZIP
/
MMUD21.ZIP
/
SOURCE
/
11_STUFF.ZIP
/
DB2BIN.ZIP
/
DB2BIN.PAS
< prev
next >
Wrap
Pascal/Delphi Source File
|
1993-07-05
|
3KB
|
128 lines
Program Db2Bin;
Uses Dos,DB,OldHead;
Type LongRec = Record
Start : LongInt;
Length : Word;
End;
IDXRecord = Record
Name : String;
Password : String[40];
Key : String[40];
Location : Integer;
Contents : Integer;
Exits : Integer;
Next : Integer;
Owner : Integer;
Pennies : Integer;
ObjType : Byte; { Thing, room, exit, player }
ObjLevel : Byte; { Toad,player,builder,wizard,god }
GenFlags : LongInt; { None
Male
Female
Neuter
Temple
Haven
-
-
Link_OK,
Dark,
Stiky,
-}
Desc : LongRec;
Fail : LongRec;
Success : LongRec;
OFail : LongRec;
OSuccess : LongRec;
End;
Var
IDX : File of IDXRecord;
TXT : File;
PLY : File Of Integer;
IDXrec : IDXrecord;
C : Integer;
Name : ComStr;
Procedure DumpText(Var Txt : File;
Var Rec : LongRec;
P : StrPtr);
Var RW : Word;
Begin
FillChar(Rec,SizeOf(Rec),#00);
If P^[0]=#00
Then Exit;
While (P^[Rec.Length]<>#00) And (Rec.Length<=1024) Do
Inc(Rec.Length);
Rec.Start:=FilePos(Txt);
BlockWrite(Txt,P^[0],Rec.Length,RW);
If RW<>Rec.Length
Then Halt(3);
End;
Begin
ReadDB;
Name:=ParamStr(1);
Name:=Copy(Name,1,Pos('.',Name)-1);
Assign(IDX,Name+'.IDX');
Rewrite(IDX);
Assign(TXT,Name+'.DAT');
Rewrite(TXT,1);
Assign(Ply,Name+'.PLY');
Rewrite(Ply);
For C:=0 To MapCount Do
Begin
Write(' ■ ',MapCount-C:3,#13);
FillChar(IDXRec,SizeOf(IDXRec),#00);
With Map[C]^ Do
Begin
IDXRec.Name := Asciiz2Str(Name^);
IDXRec.Key := Asciiz2Str(Key^);
IDXRec.Password := Asciiz2Str(Password^);
IDXREC.Location := Location;
IDXRec.Contents := Contents;
IDXRec.Next := Next;
IDXRec.Exits := Exits;
IDXRec.Pennies := Pennies;
IDXRec.Owner := Owner;
IDXRec.ObjType := Flags And $0007;
IDXRec.ObjLevel := 1;
If (Flags and Builder)=Builder
Then IDXRec.ObjLevel:=2;
If (Flags and Wizard)=Wizard
Then IdxRec.ObjLevel:=3;
DumpText(Txt,IDXrec.Desc,Desc);
DumpText(Txt,IDXrec.Fail,Fail);
DumpText(Txt,IDXrec.Success,Success);
DumpText(Txt,IDXRec.OFail,OFail);
DumpText(Txt,IDXRec.OSuccess,OSuccess);
End; {With}
Write(IDX,IDXRec);
If IsPlayer(C)
Then Begin
WriteLn(' ■ Player: (',C:3,') ',IDXRec.Name);
Write(PLY,C);
End;
End;
WriteLn;
Close(IDX);
Close(TXT);
Close(PLY);
DisposeDB;
End.